<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>PAR - Perl Archive Toolkit - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of PAR - MetaCPAN" href="https://metacpan.org/dist/PAR/releases.rss" />
        <link rel="canonical" href="PAR.html" />
        <meta name="description" content="Perl Archive Toolkit" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/PAR" />
<meta name="twitter:title"       content="PAR" />
<meta name="twitter:description" content="Perl Archive Toolkit" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="PAR.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of PAR was released.">
      <span class="relatize">01 Nov 2023 13:25:01 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/PAR">PAR</a>
  </li>
  <li>
    Module version: 1.019
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/PAR/source/lib/PAR.pm">Source</a>
    (<a href="https://metacpan.org/dist/PAR/source/lib/PAR.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/PAR/source/lib">Browse</a>
    (<a href="https://metacpan.org/dist/PAR/source/lib?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/PAR/changes">Changes</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/PAR/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/rschupp/PAR">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://github.com/rschupp/PAR/issues">Issues</a>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=PAR+1.019" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/PAR.html?oncpan=1&amp;distmat=1&amp;version=1.019&amp;grade=2" style="color: #090">483</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/PAR.html?oncpan=1&amp;distmat=1&amp;version=1.019&amp;grade=3" style="color: #900">0</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/P/PAR.html?oncpan=1&amp;distmat=1&amp;version=1.019&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/RSCHUPP/PAR-1.019">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on PAR who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 3
      </div>
    </li>
    <li>
      License: perl_5
    </li>
    <li>
      Perl: v5.8.1
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/PAR/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/R/RS/RSCHUPP/PAR-1.019.tar.gz">
      Download (<span itemprop="fileSize">64.73KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FRSCHUPP%2FPAR-1.019%2Flib%2FPAR.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/PAR/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/PAR/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:PAR">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="PAR">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/PAR.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="RSCHUPP/PAR-1.019"
>1.019
  (RSCHUPP on 2023-11-01)</option>
<option
  
  value="RSCHUPP/PAR-1.018"
>1.018
  (RSCHUPP on 2022-09-28)</option>
<option
  
  value="RSCHUPP/PAR-1.017"
>1.017
  (RSCHUPP on 2021-01-13)</option>
<option
  
  value="SMUELLER/PAR-1.002"
>1.002
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.90"
>0.90
  (AUTRIJUS on 2005-11-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.89"
>0.89
  (AUTRIJUS on 2005-06-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.88"
>0.88
  (AUTRIJUS on 2005-06-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.87"
>0.87
  (AUTRIJUS on 2005-01-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.86"
>0.86
  (AUTRIJUS on 2004-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.85_01"
>0.85_01 DEV
  (AUTRIJUS on 2004-08-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.85"
>0.85
  (AUTRIJUS on 2004-07-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.83"
>0.83
  (AUTRIJUS on 2004-05-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.82"
>0.82
  (AUTRIJUS on 2004-05-24)</option>
<option
  
  value="AUTRIJUS/PAR-0.81"
>0.81
  (AUTRIJUS on 2004-05-22)</option>
<option
  
  value="AUTRIJUS/PAR-0.80"
>0.80
  (AUTRIJUS on 2004-03-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.79"
>0.79
  (AUTRIJUS on 2004-01-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.78"
>0.78
  (AUTRIJUS on 2004-01-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.77"
>0.77
  (AUTRIJUS on 2003-12-31)</option>
<optgroup label="BackPAN">'
<option
  
  value="RSCHUPP/PAR-1.016"
>1.016
  (RSCHUPP on 2019-05-20)</option>
<option
  
  value="RSCHUPP/PAR-1.015"
>1.015
  (RSCHUPP on 2017-04-13)</option>
<option
  
  value="RSCHUPP/PAR-1.014"
>1.014
  (RSCHUPP on 2016-12-18)</option>
<option
  
  value="RSCHUPP/PAR-1.013"
>1.013
  (RSCHUPP on 2016-11-27)</option>
<option
  
  value="RSCHUPP/PAR-1.012"
>1.012
  (RSCHUPP on 2016-11-25)</option>
<option
  
  value="RSCHUPP/PAR-1.011"
>1.011
  (RSCHUPP on 2016-09-18)</option>
<option
  
  value="RSCHUPP/PAR-1.010"
>1.010
  (RSCHUPP on 2015-07-13)</option>
<option
  
  value="RSCHUPP/PAR-1.009"
>1.009
  (RSCHUPP on 2015-04-22)</option>
<option
  
  value="RSCHUPP/PAR-1.008"
>1.008
  (RSCHUPP on 2015-01-24)</option>
<option
  
  value="RSCHUPP/PAR-1.007"
>1.007
  (RSCHUPP on 2012-10-22)</option>
<option
  
  value="RSCHUPP/PAR-1.006"
>1.006
  (RSCHUPP on 2012-10-14)</option>
<option
  
  value="RSCHUPP/PAR-1.005"
>1.005
  (RSCHUPP on 2011-12-02)</option>
<option
  
  value="RSCHUPP/PAR-1.004"
>1.004
  (RSCHUPP on 2011-11-30)</option>
<option
  
  value="RSCHUPP/PAR-1.003"
>1.003
  (RSCHUPP on 2011-11-28)</option>
<option
  
  value="SMUELLER/PAR-1.001"
>1.001
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="SMUELLER/PAR-1.000"
>1.000
  (SMUELLER on 2010-04-10)</option>
<option
  
  value="SMUELLER/PAR-0.994"
>0.994
  (SMUELLER on 2009-07-23)</option>
<option
  
  value="SMUELLER/PAR-0.993"
>0.993
  (SMUELLER on 2009-07-19)</option>
<option
  
  value="SMUELLER/PAR-0.992"
>0.992
  (SMUELLER on 2009-04-05)</option>
<option
  
  value="SMUELLER/PAR-0.991"
>0.991
  (SMUELLER on 2009-03-10)</option>
<option
  
  value="SMUELLER/PAR-0.989_01"
>0.989_01 DEV
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.988"
>0.988
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.987_01"
>0.987_01 DEV
  (SMUELLER on 2009-02-20)</option>
<option
  
  value="SMUELLER/PAR-0.986"
>0.986
  (SMUELLER on 2009-02-19)</option>
<option
  
  value="SMUELLER/PAR-0.985_01"
>0.985_01 DEV
  (SMUELLER on 2009-02-02)</option>
<option
  
  value="SMUELLER/PAR-0.984"
>0.984
  (SMUELLER on 2009-01-25)</option>
<option
  
  value="SMUELLER/PAR-0.983"
>0.983
  (SMUELLER on 2008-09-12)</option>
<option
  
  value="SMUELLER/PAR-0.982"
>0.982
  (SMUELLER on 2008-08-10)</option>
<option
  
  value="SMUELLER/PAR-0.981_01"
>0.981_01 DEV
  (SMUELLER on 2008-08-09)</option>
<option
  
  value="SMUELLER/PAR-0.980"
>0.980
  (SMUELLER on 2008-05-22)</option>
<option
  
  value="SMUELLER/PAR-0.979"
>0.979
  (SMUELLER on 2008-05-13)</option>
<option
  
  value="SMUELLER/PAR-0.977"
>0.977
  (SMUELLER on 2007-12-20)</option>
<option
  
  value="SMUELLER/PAR-0.976"
>0.976
  (SMUELLER on 2007-07-29)</option>
<option
  
  value="SMUELLER/PAR-0.973"
>0.973
  (SMUELLER on 2007-02-03)</option>
<option
  
  value="SMUELLER/PAR-0.972"
>0.972
  (SMUELLER on 2007-01-16)</option>
<option
  
  value="SMUELLER/PAR-0.971"
>0.971
  (SMUELLER on 2007-01-12)</option>
<option
  
  value="SMUELLER/PAR-0.970_01"
>0.970_01 DEV
  (SMUELLER on 2007-01-10)</option>
<option
  
  value="SMUELLER/PAR-0.970"
>0.970
  (SMUELLER on 2006-12-03)</option>
<option
  
  value="SMUELLER/PAR-0.969_01"
>0.969_01 DEV
  (SMUELLER on 2006-12-01)</option>
<option
  
  value="SMUELLER/PAR-0.960"
>0.960
  (SMUELLER on 2006-11-21)</option>
<option
  
  value="SMUELLER/PAR-0.959"
>0.959
  (SMUELLER on 2006-11-12)</option>
<option
  
  value="SMUELLER/PAR-0.958"
>0.958
  (SMUELLER on 2006-11-11)</option>
<option
  
  value="SMUELLER/PAR-0.957"
>0.957
  (SMUELLER on 2006-10-24)</option>
<option
  
  value="SMUELLER/PAR-0.956"
>0.956
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.955"
>0.955
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.954"
>0.954
  (SMUELLER on 2006-09-26)</option>
<option
  
  value="SMUELLER/PAR-0.952"
>0.952
  (SMUELLER on 2006-08-22)</option>
<option
  
  value="SMUELLER/PAR-0.951"
>0.951
  (SMUELLER on 2006-08-12)</option>
<option
  
  value="SMUELLER/PAR-0.950"
>0.950
  (SMUELLER on 2006-08-11)</option>
<option
  
  value="SMUELLER/PAR-0.949_01"
>0.949_01 DEV
  (SMUELLER on 2006-08-05)</option>
<option
  
  value="SMUELLER/PAR-0.942"
>0.942
  (SMUELLER on 2006-07-22)</option>
<option
  
  value="SMUELLER/PAR-0.941"
>0.941
  (SMUELLER on 2006-06-20)</option>
<option
  
  value="SMUELLER/PAR-0.94"
>0.94
  (SMUELLER on 2006-06-02)</option>
<option
  
  value="SMUELLER/PAR-0.93"
>0.93
  (SMUELLER on 2006-05-19)</option>
<option
  
  value="SMUELLER/PAR-0.92"
>0.92
  (SMUELLER on 2006-03-04)</option>
<option
  
  value="SMUELLER/PAR-0.91"
>0.91
  (SMUELLER on 2006-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.80_99"
>0.80_99 DEV
  (AUTRIJUS on 2004-03-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_99"
>0.79_99 DEV
  (AUTRIJUS on 2004-03-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98_0"
>0.79_98_0 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98"
>0.79_98 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_97"
>0.79_97 DEV
  (AUTRIJUS on 2004-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_99"
>0.77_99 DEV
  (AUTRIJUS on 2004-01-04)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_98"
>0.77_98 DEV
  (AUTRIJUS on 2004-01-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_99"
>0.76_99 DEV
  (AUTRIJUS on 2003-12-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_98"
>0.76_98 DEV
  (AUTRIJUS on 2003-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.76"
>0.76
  (AUTRIJUS on 2003-10-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.75_99"
>0.75_99 DEV
  (AUTRIJUS on 2003-10-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.75"
>0.75
  (AUTRIJUS on 2003-09-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.74"
>0.74
  (AUTRIJUS on 2003-08-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.73"
>0.73
  (AUTRIJUS on 2003-08-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.72"
>0.72
  (AUTRIJUS on 2003-08-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.71"
>0.71
  (AUTRIJUS on 2003-07-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.70"
>0.70
  (AUTRIJUS on 2003-07-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_93"
>0.69_93 DEV
  (AUTRIJUS on 2003-07-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_91"
>0.69_91 DEV
  (AUTRIJUS on 2003-07-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_90"
>0.69_90 DEV
  (AUTRIJUS on 2003-07-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.69"
>0.69
  (AUTRIJUS on 2003-05-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.68"
>0.68
  (AUTRIJUS on 2003-05-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.67_89"
>0.67_89 DEV
  (AUTRIJUS on 2003-05-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.67"
>0.67
  (AUTRIJUS on 2003-03-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.66"
>0.66
  (AUTRIJUS on 2003-03-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.65"
>0.65
  (AUTRIJUS on 2003-03-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.64"
>0.64
  (AUTRIJUS on 2003-03-01)</option>
<option
  
  value="AUTRIJUS/PAR-0.63"
>0.63
  (AUTRIJUS on 2003-02-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.62"
>0.62
  (AUTRIJUS on 2003-01-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.61"
>0.61
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.60"
>0.60
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.51"
>0.51
  (AUTRIJUS on 2002-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.50"
>0.50
  (AUTRIJUS on 2002-12-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.49"
>0.49
  (AUTRIJUS on 2002-11-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.48"
>0.48
  (AUTRIJUS on 2002-11-13)</option>
<option
  
  value="AUTRIJUS/PAR-0.47"
>0.47
  (AUTRIJUS on 2002-11-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.46"
>0.46
  (AUTRIJUS on 2002-11-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.45"
>0.45
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.44"
>0.44
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.43"
>0.43
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.42"
>0.42
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.41"
>0.41
  (AUTRIJUS on 2002-11-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.40"
>0.40
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.30"
>0.30
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.22"
>0.22
  (AUTRIJUS on 2002-11-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.21"
>0.21
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.20"
>0.20
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.15"
>0.15
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.14"
>0.14
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.13"
>0.13
  (AUTRIJUS on 2002-10-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.12"
>0.12
  (AUTRIJUS on 2002-10-20)</option>
<option
  
  value="AUTRIJUS/PAR-0.11"
>0.11
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.10"
>0.10
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.06"
>0.06
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.05"
>0.05
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.04"
>0.04
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.03"
>0.03
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.02"
>0.02
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.01"
>0.01
  (AUTRIJUS on 2002-10-18)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/RSCHUPP/PAR-1.019/diff/' + encodeURIComponent(this.value) + '/lib/PAR.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="RSCHUPP/PAR-1.019"
>1.019
  (RSCHUPP on 2023-11-01)</option>
<option
  
  value="RSCHUPP/PAR-1.018"
>1.018
  (RSCHUPP on 2022-09-28)</option>
<option
  
  value="RSCHUPP/PAR-1.017"
>1.017
  (RSCHUPP on 2021-01-13)</option>
<option
  
  value="SMUELLER/PAR-1.002"
>1.002
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.90"
>0.90
  (AUTRIJUS on 2005-11-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.89"
>0.89
  (AUTRIJUS on 2005-06-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.88"
>0.88
  (AUTRIJUS on 2005-06-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.87"
>0.87
  (AUTRIJUS on 2005-01-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.86"
>0.86
  (AUTRIJUS on 2004-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.85_01"
>0.85_01 DEV
  (AUTRIJUS on 2004-08-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.85"
>0.85
  (AUTRIJUS on 2004-07-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.83"
>0.83
  (AUTRIJUS on 2004-05-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.82"
>0.82
  (AUTRIJUS on 2004-05-24)</option>
<option
  
  value="AUTRIJUS/PAR-0.81"
>0.81
  (AUTRIJUS on 2004-05-22)</option>
<option
  
  value="AUTRIJUS/PAR-0.80"
>0.80
  (AUTRIJUS on 2004-03-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.79"
>0.79
  (AUTRIJUS on 2004-01-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.78"
>0.78
  (AUTRIJUS on 2004-01-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.77"
>0.77
  (AUTRIJUS on 2003-12-31)</option>
<optgroup label="BackPAN">'
<option
  
  value="RSCHUPP/PAR-1.016"
>1.016
  (RSCHUPP on 2019-05-20)</option>
<option
  
  value="RSCHUPP/PAR-1.015"
>1.015
  (RSCHUPP on 2017-04-13)</option>
<option
  
  value="RSCHUPP/PAR-1.014"
>1.014
  (RSCHUPP on 2016-12-18)</option>
<option
  
  value="RSCHUPP/PAR-1.013"
>1.013
  (RSCHUPP on 2016-11-27)</option>
<option
  
  value="RSCHUPP/PAR-1.012"
>1.012
  (RSCHUPP on 2016-11-25)</option>
<option
  
  value="RSCHUPP/PAR-1.011"
>1.011
  (RSCHUPP on 2016-09-18)</option>
<option
  
  value="RSCHUPP/PAR-1.010"
>1.010
  (RSCHUPP on 2015-07-13)</option>
<option
  
  value="RSCHUPP/PAR-1.009"
>1.009
  (RSCHUPP on 2015-04-22)</option>
<option
  
  value="RSCHUPP/PAR-1.008"
>1.008
  (RSCHUPP on 2015-01-24)</option>
<option
  
  value="RSCHUPP/PAR-1.007"
>1.007
  (RSCHUPP on 2012-10-22)</option>
<option
  
  value="RSCHUPP/PAR-1.006"
>1.006
  (RSCHUPP on 2012-10-14)</option>
<option
  
  value="RSCHUPP/PAR-1.005"
>1.005
  (RSCHUPP on 2011-12-02)</option>
<option
  
  value="RSCHUPP/PAR-1.004"
>1.004
  (RSCHUPP on 2011-11-30)</option>
<option
  
  value="RSCHUPP/PAR-1.003"
>1.003
  (RSCHUPP on 2011-11-28)</option>
<option
  
  value="SMUELLER/PAR-1.001"
>1.001
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="SMUELLER/PAR-1.000"
>1.000
  (SMUELLER on 2010-04-10)</option>
<option
  
  value="SMUELLER/PAR-0.994"
>0.994
  (SMUELLER on 2009-07-23)</option>
<option
  
  value="SMUELLER/PAR-0.993"
>0.993
  (SMUELLER on 2009-07-19)</option>
<option
  
  value="SMUELLER/PAR-0.992"
>0.992
  (SMUELLER on 2009-04-05)</option>
<option
  
  value="SMUELLER/PAR-0.991"
>0.991
  (SMUELLER on 2009-03-10)</option>
<option
  
  value="SMUELLER/PAR-0.989_01"
>0.989_01 DEV
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.988"
>0.988
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.987_01"
>0.987_01 DEV
  (SMUELLER on 2009-02-20)</option>
<option
  
  value="SMUELLER/PAR-0.986"
>0.986
  (SMUELLER on 2009-02-19)</option>
<option
  
  value="SMUELLER/PAR-0.985_01"
>0.985_01 DEV
  (SMUELLER on 2009-02-02)</option>
<option
  
  value="SMUELLER/PAR-0.984"
>0.984
  (SMUELLER on 2009-01-25)</option>
<option
  
  value="SMUELLER/PAR-0.983"
>0.983
  (SMUELLER on 2008-09-12)</option>
<option
  
  value="SMUELLER/PAR-0.982"
>0.982
  (SMUELLER on 2008-08-10)</option>
<option
  
  value="SMUELLER/PAR-0.981_01"
>0.981_01 DEV
  (SMUELLER on 2008-08-09)</option>
<option
  
  value="SMUELLER/PAR-0.980"
>0.980
  (SMUELLER on 2008-05-22)</option>
<option
  
  value="SMUELLER/PAR-0.979"
>0.979
  (SMUELLER on 2008-05-13)</option>
<option
  
  value="SMUELLER/PAR-0.977"
>0.977
  (SMUELLER on 2007-12-20)</option>
<option
  
  value="SMUELLER/PAR-0.976"
>0.976
  (SMUELLER on 2007-07-29)</option>
<option
  
  value="SMUELLER/PAR-0.973"
>0.973
  (SMUELLER on 2007-02-03)</option>
<option
  
  value="SMUELLER/PAR-0.972"
>0.972
  (SMUELLER on 2007-01-16)</option>
<option
  
  value="SMUELLER/PAR-0.971"
>0.971
  (SMUELLER on 2007-01-12)</option>
<option
  
  value="SMUELLER/PAR-0.970_01"
>0.970_01 DEV
  (SMUELLER on 2007-01-10)</option>
<option
  
  value="SMUELLER/PAR-0.970"
>0.970
  (SMUELLER on 2006-12-03)</option>
<option
  
  value="SMUELLER/PAR-0.969_01"
>0.969_01 DEV
  (SMUELLER on 2006-12-01)</option>
<option
  
  value="SMUELLER/PAR-0.960"
>0.960
  (SMUELLER on 2006-11-21)</option>
<option
  
  value="SMUELLER/PAR-0.959"
>0.959
  (SMUELLER on 2006-11-12)</option>
<option
  
  value="SMUELLER/PAR-0.958"
>0.958
  (SMUELLER on 2006-11-11)</option>
<option
  
  value="SMUELLER/PAR-0.957"
>0.957
  (SMUELLER on 2006-10-24)</option>
<option
  
  value="SMUELLER/PAR-0.956"
>0.956
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.955"
>0.955
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.954"
>0.954
  (SMUELLER on 2006-09-26)</option>
<option
  
  value="SMUELLER/PAR-0.952"
>0.952
  (SMUELLER on 2006-08-22)</option>
<option
  
  value="SMUELLER/PAR-0.951"
>0.951
  (SMUELLER on 2006-08-12)</option>
<option
  
  value="SMUELLER/PAR-0.950"
>0.950
  (SMUELLER on 2006-08-11)</option>
<option
  
  value="SMUELLER/PAR-0.949_01"
>0.949_01 DEV
  (SMUELLER on 2006-08-05)</option>
<option
  
  value="SMUELLER/PAR-0.942"
>0.942
  (SMUELLER on 2006-07-22)</option>
<option
  
  value="SMUELLER/PAR-0.941"
>0.941
  (SMUELLER on 2006-06-20)</option>
<option
  
  value="SMUELLER/PAR-0.94"
>0.94
  (SMUELLER on 2006-06-02)</option>
<option
  
  value="SMUELLER/PAR-0.93"
>0.93
  (SMUELLER on 2006-05-19)</option>
<option
  
  value="SMUELLER/PAR-0.92"
>0.92
  (SMUELLER on 2006-03-04)</option>
<option
  
  value="SMUELLER/PAR-0.91"
>0.91
  (SMUELLER on 2006-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.80_99"
>0.80_99 DEV
  (AUTRIJUS on 2004-03-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_99"
>0.79_99 DEV
  (AUTRIJUS on 2004-03-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98_0"
>0.79_98_0 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98"
>0.79_98 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_97"
>0.79_97 DEV
  (AUTRIJUS on 2004-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_99"
>0.77_99 DEV
  (AUTRIJUS on 2004-01-04)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_98"
>0.77_98 DEV
  (AUTRIJUS on 2004-01-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_99"
>0.76_99 DEV
  (AUTRIJUS on 2003-12-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_98"
>0.76_98 DEV
  (AUTRIJUS on 2003-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.76"
>0.76
  (AUTRIJUS on 2003-10-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.75_99"
>0.75_99 DEV
  (AUTRIJUS on 2003-10-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.75"
>0.75
  (AUTRIJUS on 2003-09-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.74"
>0.74
  (AUTRIJUS on 2003-08-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.73"
>0.73
  (AUTRIJUS on 2003-08-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.72"
>0.72
  (AUTRIJUS on 2003-08-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.71"
>0.71
  (AUTRIJUS on 2003-07-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.70"
>0.70
  (AUTRIJUS on 2003-07-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_93"
>0.69_93 DEV
  (AUTRIJUS on 2003-07-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_91"
>0.69_91 DEV
  (AUTRIJUS on 2003-07-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_90"
>0.69_90 DEV
  (AUTRIJUS on 2003-07-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.69"
>0.69
  (AUTRIJUS on 2003-05-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.68"
>0.68
  (AUTRIJUS on 2003-05-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.67_89"
>0.67_89 DEV
  (AUTRIJUS on 2003-05-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.67"
>0.67
  (AUTRIJUS on 2003-03-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.66"
>0.66
  (AUTRIJUS on 2003-03-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.65"
>0.65
  (AUTRIJUS on 2003-03-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.64"
>0.64
  (AUTRIJUS on 2003-03-01)</option>
<option
  
  value="AUTRIJUS/PAR-0.63"
>0.63
  (AUTRIJUS on 2003-02-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.62"
>0.62
  (AUTRIJUS on 2003-01-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.61"
>0.61
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.60"
>0.60
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.51"
>0.51
  (AUTRIJUS on 2002-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.50"
>0.50
  (AUTRIJUS on 2002-12-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.49"
>0.49
  (AUTRIJUS on 2002-11-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.48"
>0.48
  (AUTRIJUS on 2002-11-13)</option>
<option
  
  value="AUTRIJUS/PAR-0.47"
>0.47
  (AUTRIJUS on 2002-11-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.46"
>0.46
  (AUTRIJUS on 2002-11-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.45"
>0.45
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.44"
>0.44
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.43"
>0.43
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.42"
>0.42
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.41"
>0.41
  (AUTRIJUS on 2002-11-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.40"
>0.40
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.30"
>0.30
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.22"
>0.22
  (AUTRIJUS on 2002-11-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.21"
>0.21
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.20"
>0.20
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.15"
>0.15
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.14"
>0.14
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.13"
>0.13
  (AUTRIJUS on 2002-10-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.12"
>0.12
  (AUTRIJUS on 2002-10-20)</option>
<option
  
  value="AUTRIJUS/PAR-0.11"
>0.11
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.10"
>0.10
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.06"
>0.06
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.05"
>0.05
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.04"
>0.04
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.03"
>0.03
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.02"
>0.02
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.01"
>0.01
  (AUTRIJUS on 2002-10-18)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><a href="./Archive::Zip.html" title="Archive::Zip" class="ellipsis">Archive::Zip</a></li>
  <li><a href="https://metacpan.org/pod/AutoLoader" title="AutoLoader" class="ellipsis">AutoLoader</a></li>
  <li><a href="https://metacpan.org/pod/Compress::Zlib" title="Compress::Zlib" class="ellipsis">Compress::Zlib</a></li>
  <li><a href="https://metacpan.org/pod/Digest::SHA" title="Digest::SHA" class="ellipsis">Digest::SHA</a></li>
  <li><a href="https://metacpan.org/pod/File::Temp" title="File::Temp" class="ellipsis">File::Temp</a></li>
  <li><a href="https://metacpan.org/pod/PAR::Dist" title="PAR::Dist" class="ellipsis">PAR::Dist</a></li>
  <li><i class="ttip" title="dynamic_config enabled">and possibly others</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/PAR/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=PAR">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=PAR">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/RSCHUPP/PAR-1.019/view/lib/PAR.pm">This version</a>
    </li>
    <li>
      <a href="PAR.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/MISHIN"><img src="https://www.gravatar.com/avatar/7aefe037fc617ef89780ad89de3deb87?d=identicon&amp;s=20" title="MISHIN" alt="MISHIN"></a>
<a class="display-all" href="https://metacpan.org/author/KRAUTCAT"><img src="https://www.gravatar.com/avatar/efd137d1577aa9df7fc833f6306958d5?d=identicon&amp;s=20" title="KRAUTCAT" alt="KRAUTCAT"></a>
<a class="display-all" href="https://metacpan.org/author/XLAT"><img src="https://www.gravatar.com/avatar/a477fe9cd31dd7f08e1962deff6ef5c5?d=identicon&amp;s=20" title="XLAT" alt="XLAT"></a>
<a class="display-all" href="https://metacpan.org/author/PINGAN"><img src="https://www.gravatar.com/avatar/a02222e5e0e4fd24d52fc29a08ac6bcb?d=identicon&amp;s=20" title="PINGAN" alt="PINGAN"></a>
<a class="display-all" href="https://metacpan.org/author/ILUX"><img src="https://www.gravatar.com/avatar/1cd0eea5e6ca13346060bb9d2c1e286b?d=identicon&amp;s=20" title="ILUX" alt="ILUX"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/PAR/plussers">7 PAUSE users</a>
</div>
<div>
    12 non-PAUSE users
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 1 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
      data-cpan-author="AUTRIJUS"
      data-contrib-email="cpan@audreyt.org"
    >
      <a href="https://metacpan.org/author/AUTRIJUS" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/4896108281e9b60ca50bb0c0c1b88151?d=identicon&amp;s=20" />
      Audrey Tang
      </a>
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/RSCHUPP" class="author-name">Roderich Schupp</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/PAR.pm&#39;" class="">
<option
  selected
  value="RSCHUPP/PAR-1.019"
>1.019
  (RSCHUPP on 2023-11-01)</option>
<option
  
  value="RSCHUPP/PAR-1.018"
>1.018
  (RSCHUPP on 2022-09-28)</option>
<option
  
  value="RSCHUPP/PAR-1.017"
>1.017
  (RSCHUPP on 2021-01-13)</option>
<option
  
  value="SMUELLER/PAR-1.002"
>1.002
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.90"
>0.90
  (AUTRIJUS on 2005-11-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.89"
>0.89
  (AUTRIJUS on 2005-06-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.88"
>0.88
  (AUTRIJUS on 2005-06-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.87"
>0.87
  (AUTRIJUS on 2005-01-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.86"
>0.86
  (AUTRIJUS on 2004-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.85_01"
>0.85_01 DEV
  (AUTRIJUS on 2004-08-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.85"
>0.85
  (AUTRIJUS on 2004-07-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.83"
>0.83
  (AUTRIJUS on 2004-05-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.82"
>0.82
  (AUTRIJUS on 2004-05-24)</option>
<option
  
  value="AUTRIJUS/PAR-0.81"
>0.81
  (AUTRIJUS on 2004-05-22)</option>
<option
  
  value="AUTRIJUS/PAR-0.80"
>0.80
  (AUTRIJUS on 2004-03-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.79"
>0.79
  (AUTRIJUS on 2004-01-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.78"
>0.78
  (AUTRIJUS on 2004-01-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.77"
>0.77
  (AUTRIJUS on 2003-12-31)</option>
<optgroup label="BackPAN">'
<option
  
  value="RSCHUPP/PAR-1.016"
>1.016
  (RSCHUPP on 2019-05-20)</option>
<option
  
  value="RSCHUPP/PAR-1.015"
>1.015
  (RSCHUPP on 2017-04-13)</option>
<option
  
  value="RSCHUPP/PAR-1.014"
>1.014
  (RSCHUPP on 2016-12-18)</option>
<option
  
  value="RSCHUPP/PAR-1.013"
>1.013
  (RSCHUPP on 2016-11-27)</option>
<option
  
  value="RSCHUPP/PAR-1.012"
>1.012
  (RSCHUPP on 2016-11-25)</option>
<option
  
  value="RSCHUPP/PAR-1.011"
>1.011
  (RSCHUPP on 2016-09-18)</option>
<option
  
  value="RSCHUPP/PAR-1.010"
>1.010
  (RSCHUPP on 2015-07-13)</option>
<option
  
  value="RSCHUPP/PAR-1.009"
>1.009
  (RSCHUPP on 2015-04-22)</option>
<option
  
  value="RSCHUPP/PAR-1.008"
>1.008
  (RSCHUPP on 2015-01-24)</option>
<option
  
  value="RSCHUPP/PAR-1.007"
>1.007
  (RSCHUPP on 2012-10-22)</option>
<option
  
  value="RSCHUPP/PAR-1.006"
>1.006
  (RSCHUPP on 2012-10-14)</option>
<option
  
  value="RSCHUPP/PAR-1.005"
>1.005
  (RSCHUPP on 2011-12-02)</option>
<option
  
  value="RSCHUPP/PAR-1.004"
>1.004
  (RSCHUPP on 2011-11-30)</option>
<option
  
  value="RSCHUPP/PAR-1.003"
>1.003
  (RSCHUPP on 2011-11-28)</option>
<option
  
  value="SMUELLER/PAR-1.001"
>1.001
  (SMUELLER on 2010-07-25)</option>
<option
  
  value="SMUELLER/PAR-1.000"
>1.000
  (SMUELLER on 2010-04-10)</option>
<option
  
  value="SMUELLER/PAR-0.994"
>0.994
  (SMUELLER on 2009-07-23)</option>
<option
  
  value="SMUELLER/PAR-0.993"
>0.993
  (SMUELLER on 2009-07-19)</option>
<option
  
  value="SMUELLER/PAR-0.992"
>0.992
  (SMUELLER on 2009-04-05)</option>
<option
  
  value="SMUELLER/PAR-0.991"
>0.991
  (SMUELLER on 2009-03-10)</option>
<option
  
  value="SMUELLER/PAR-0.989_01"
>0.989_01 DEV
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.988"
>0.988
  (SMUELLER on 2009-03-02)</option>
<option
  
  value="SMUELLER/PAR-0.987_01"
>0.987_01 DEV
  (SMUELLER on 2009-02-20)</option>
<option
  
  value="SMUELLER/PAR-0.986"
>0.986
  (SMUELLER on 2009-02-19)</option>
<option
  
  value="SMUELLER/PAR-0.985_01"
>0.985_01 DEV
  (SMUELLER on 2009-02-02)</option>
<option
  
  value="SMUELLER/PAR-0.984"
>0.984
  (SMUELLER on 2009-01-25)</option>
<option
  
  value="SMUELLER/PAR-0.983"
>0.983
  (SMUELLER on 2008-09-12)</option>
<option
  
  value="SMUELLER/PAR-0.982"
>0.982
  (SMUELLER on 2008-08-10)</option>
<option
  
  value="SMUELLER/PAR-0.981_01"
>0.981_01 DEV
  (SMUELLER on 2008-08-09)</option>
<option
  
  value="SMUELLER/PAR-0.980"
>0.980
  (SMUELLER on 2008-05-22)</option>
<option
  
  value="SMUELLER/PAR-0.979"
>0.979
  (SMUELLER on 2008-05-13)</option>
<option
  
  value="SMUELLER/PAR-0.977"
>0.977
  (SMUELLER on 2007-12-20)</option>
<option
  
  value="SMUELLER/PAR-0.976"
>0.976
  (SMUELLER on 2007-07-29)</option>
<option
  
  value="SMUELLER/PAR-0.973"
>0.973
  (SMUELLER on 2007-02-03)</option>
<option
  
  value="SMUELLER/PAR-0.972"
>0.972
  (SMUELLER on 2007-01-16)</option>
<option
  
  value="SMUELLER/PAR-0.971"
>0.971
  (SMUELLER on 2007-01-12)</option>
<option
  
  value="SMUELLER/PAR-0.970_01"
>0.970_01 DEV
  (SMUELLER on 2007-01-10)</option>
<option
  
  value="SMUELLER/PAR-0.970"
>0.970
  (SMUELLER on 2006-12-03)</option>
<option
  
  value="SMUELLER/PAR-0.969_01"
>0.969_01 DEV
  (SMUELLER on 2006-12-01)</option>
<option
  
  value="SMUELLER/PAR-0.960"
>0.960
  (SMUELLER on 2006-11-21)</option>
<option
  
  value="SMUELLER/PAR-0.959"
>0.959
  (SMUELLER on 2006-11-12)</option>
<option
  
  value="SMUELLER/PAR-0.958"
>0.958
  (SMUELLER on 2006-11-11)</option>
<option
  
  value="SMUELLER/PAR-0.957"
>0.957
  (SMUELLER on 2006-10-24)</option>
<option
  
  value="SMUELLER/PAR-0.956"
>0.956
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.955"
>0.955
  (SMUELLER on 2006-10-03)</option>
<option
  
  value="SMUELLER/PAR-0.954"
>0.954
  (SMUELLER on 2006-09-26)</option>
<option
  
  value="SMUELLER/PAR-0.952"
>0.952
  (SMUELLER on 2006-08-22)</option>
<option
  
  value="SMUELLER/PAR-0.951"
>0.951
  (SMUELLER on 2006-08-12)</option>
<option
  
  value="SMUELLER/PAR-0.950"
>0.950
  (SMUELLER on 2006-08-11)</option>
<option
  
  value="SMUELLER/PAR-0.949_01"
>0.949_01 DEV
  (SMUELLER on 2006-08-05)</option>
<option
  
  value="SMUELLER/PAR-0.942"
>0.942
  (SMUELLER on 2006-07-22)</option>
<option
  
  value="SMUELLER/PAR-0.941"
>0.941
  (SMUELLER on 2006-06-20)</option>
<option
  
  value="SMUELLER/PAR-0.94"
>0.94
  (SMUELLER on 2006-06-02)</option>
<option
  
  value="SMUELLER/PAR-0.93"
>0.93
  (SMUELLER on 2006-05-19)</option>
<option
  
  value="SMUELLER/PAR-0.92"
>0.92
  (SMUELLER on 2006-03-04)</option>
<option
  
  value="SMUELLER/PAR-0.91"
>0.91
  (SMUELLER on 2006-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.80_99"
>0.80_99 DEV
  (AUTRIJUS on 2004-03-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_99"
>0.79_99 DEV
  (AUTRIJUS on 2004-03-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98_0"
>0.79_98_0 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_98"
>0.79_98 DEV
  (AUTRIJUS on 2004-02-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.79_97"
>0.79_97 DEV
  (AUTRIJUS on 2004-02-15)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_99"
>0.77_99 DEV
  (AUTRIJUS on 2004-01-04)</option>
<option
  
  value="AUTRIJUS/PAR-0.77_98"
>0.77_98 DEV
  (AUTRIJUS on 2004-01-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_99"
>0.76_99 DEV
  (AUTRIJUS on 2003-12-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.76_98"
>0.76_98 DEV
  (AUTRIJUS on 2003-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.76"
>0.76
  (AUTRIJUS on 2003-10-28)</option>
<option
  
  value="AUTRIJUS/PAR-0.75_99"
>0.75_99 DEV
  (AUTRIJUS on 2003-10-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.75"
>0.75
  (AUTRIJUS on 2003-09-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.74"
>0.74
  (AUTRIJUS on 2003-08-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.73"
>0.73
  (AUTRIJUS on 2003-08-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.72"
>0.72
  (AUTRIJUS on 2003-08-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.71"
>0.71
  (AUTRIJUS on 2003-07-30)</option>
<option
  
  value="AUTRIJUS/PAR-0.70"
>0.70
  (AUTRIJUS on 2003-07-29)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_93"
>0.69_93 DEV
  (AUTRIJUS on 2003-07-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_91"
>0.69_91 DEV
  (AUTRIJUS on 2003-07-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.69_90"
>0.69_90 DEV
  (AUTRIJUS on 2003-07-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.69"
>0.69
  (AUTRIJUS on 2003-05-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.68"
>0.68
  (AUTRIJUS on 2003-05-25)</option>
<option
  
  value="AUTRIJUS/PAR-0.67_89"
>0.67_89 DEV
  (AUTRIJUS on 2003-05-16)</option>
<option
  
  value="AUTRIJUS/PAR-0.67"
>0.67
  (AUTRIJUS on 2003-03-31)</option>
<option
  
  value="AUTRIJUS/PAR-0.66"
>0.66
  (AUTRIJUS on 2003-03-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.65"
>0.65
  (AUTRIJUS on 2003-03-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.64"
>0.64
  (AUTRIJUS on 2003-03-01)</option>
<option
  
  value="AUTRIJUS/PAR-0.63"
>0.63
  (AUTRIJUS on 2003-02-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.62"
>0.62
  (AUTRIJUS on 2003-01-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.61"
>0.61
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.60"
>0.60
  (AUTRIJUS on 2002-12-17)</option>
<option
  
  value="AUTRIJUS/PAR-0.51"
>0.51
  (AUTRIJUS on 2002-12-11)</option>
<option
  
  value="AUTRIJUS/PAR-0.50"
>0.50
  (AUTRIJUS on 2002-12-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.49"
>0.49
  (AUTRIJUS on 2002-11-23)</option>
<option
  
  value="AUTRIJUS/PAR-0.48"
>0.48
  (AUTRIJUS on 2002-11-13)</option>
<option
  
  value="AUTRIJUS/PAR-0.47"
>0.47
  (AUTRIJUS on 2002-11-10)</option>
<option
  
  value="AUTRIJUS/PAR-0.46"
>0.46
  (AUTRIJUS on 2002-11-09)</option>
<option
  
  value="AUTRIJUS/PAR-0.45"
>0.45
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.44"
>0.44
  (AUTRIJUS on 2002-11-08)</option>
<option
  
  value="AUTRIJUS/PAR-0.43"
>0.43
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.42"
>0.42
  (AUTRIJUS on 2002-11-07)</option>
<option
  
  value="AUTRIJUS/PAR-0.41"
>0.41
  (AUTRIJUS on 2002-11-06)</option>
<option
  
  value="AUTRIJUS/PAR-0.40"
>0.40
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.30"
>0.30
  (AUTRIJUS on 2002-11-05)</option>
<option
  
  value="AUTRIJUS/PAR-0.22"
>0.22
  (AUTRIJUS on 2002-11-03)</option>
<option
  
  value="AUTRIJUS/PAR-0.21"
>0.21
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.20"
>0.20
  (AUTRIJUS on 2002-11-02)</option>
<option
  
  value="AUTRIJUS/PAR-0.15"
>0.15
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.14"
>0.14
  (AUTRIJUS on 2002-10-27)</option>
<option
  
  value="AUTRIJUS/PAR-0.13"
>0.13
  (AUTRIJUS on 2002-10-21)</option>
<option
  
  value="AUTRIJUS/PAR-0.12"
>0.12
  (AUTRIJUS on 2002-10-20)</option>
<option
  
  value="AUTRIJUS/PAR-0.11"
>0.11
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.10"
>0.10
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.06"
>0.06
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.05"
>0.05
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.04"
>0.04
  (AUTRIJUS on 2002-10-19)</option>
<option
  
  value="AUTRIJUS/PAR-0.03"
>0.03
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.02"
>0.02
  (AUTRIJUS on 2002-10-18)</option>
<option
  
  value="AUTRIJUS/PAR-0.01"
>0.01
  (AUTRIJUS on 2002-10-18)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/PAR">PAR-1.019</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage two &#10;
          • 7 direct dependents &#10;          • 14 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="10"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="PAR-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="PAR-1.019">
    <input type="hidden" name="author" value="RSCHUPP">
    <input type="hidden" name="distribution" value="PAR">
    <button type="submit" class="favorite highlight"><span>19</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="PAR.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>19</span> ++</a>
</div>
   / <span>PAR</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="PAR.html#NAME">NAME</a></li>
  <li><a href="PAR.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="PAR.html#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="PAR.html#NOTES">NOTES</a>
    <ul>
      <li><a href="PAR.html#import-options">import options</a></li>
    </ul>
  </li>
  <li><a href="PAR.html#SEE-ALSO">SEE ALSO</a></li>
  <li><a href="PAR.html#ACKNOWLEDGMENTS">ACKNOWLEDGMENTS</a></li>
  <li><a href="PAR.html#AUTHORS">AUTHORS</a></li>
  <li><a href="PAR.html#COPYRIGHT">COPYRIGHT</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>PAR - Perl Archive Toolkit</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<p>(If you want to make an executable that contains all module, scripts and data files, please consult the <a href="https://metacpan.org/pod/pp">pp</a> utility instead. <a href="https://metacpan.org/pod/pp">pp</a> used to be part of the PAR distribution but is now shipped as part of the <a href="https://metacpan.org/pod/PAR::Packer">PAR::Packer</a> distribution instead.)</p>

<p>Following examples assume a <i>foo.par</i> file in Zip format.</p>

<p>To use <i>Hello.pm</i> from <i>./foo.par</i>:</p>

<pre><code>    % perl -MPAR=./foo.par -MHello
    % perl -MPAR=./foo -MHello          # the .par part is optional</code></pre>

<p>Same thing, but search <i>foo.par</i> in <code>@INC</code>:</p>

<pre><code>    % perl -MPAR -Ifoo.par -MHello
    % perl -MPAR -Ifoo -MHello          # ditto</code></pre>

<p>Following paths inside the PAR file are searched:</p>

<pre><code>    /lib/
    /arch/
    /i386-freebsd/              # i.e. $Config{archname}
    /5.8.0/                     # i.e. $Config{version}
    /5.8.0/i386-freebsd/        # both of the above
    /</code></pre>

<p>PAR files may also (recursively) contain other PAR files. All files under following paths will be considered as PAR files and searched as well:</p>

<pre><code>    /par/i386-freebsd/          # i.e. $Config{archname}
    /par/5.8.0/                 # i.e. $Config{version}
    /par/5.8.0/i386-freebsd/    # both of the above
    /par/</code></pre>

<p>Run <i>script/test.pl</i> or <i>test.pl</i> from <i>foo.par</i>:</p>

<pre><code>    % perl -MPAR foo.par test.pl        # only when $0 ends in &#39;.par&#39;</code></pre>

<p>However, if the <i>.par</i> archive contains either <i>script/main.pl</i> or <i>main.pl</i>, then it is used instead:</p>

<pre><code>    % perl -MPAR foo.par test.pl        # runs main.pl; @ARGV is &#39;test.pl&#39;</code></pre>

<p>Use in a program:</p>

<pre><code>    use PAR &#39;foo.par&#39;;
    use Hello; # reads within foo.par

    # PAR::read_file() returns a file inside any loaded PARs
    my $conf = PAR::read_file(&#39;data/MyConfig.yaml&#39;);

    # PAR::par_handle() returns an Archive::Zip handle
    my $zip = PAR::par_handle(&#39;foo.par&#39;)
    my $src = $zip-&gt;memberNamed(&#39;lib/Hello.pm&#39;)-&gt;contents;</code></pre>

<p>You can also use wildcard characters:</p>

<pre><code>    use PAR &#39;/home/foo/*.par&#39;;  # loads all PAR files in that directory</code></pre>

<p>Since version 0.950, you can also use a different syntax for loading <i>.par</i> archives:</p>

<pre><code>    use PAR { file =&gt; &#39;foo.par&#39; }, { file =&gt; &#39;otherfile.par&#39; };</code></pre>

<p>Why? Because you can also do this:</p>

<pre><code>    use PAR { file =&gt; &#39;foo.par, fallback =&gt; 1 };
    use Foo::Bar;</code></pre>

<p>Foo::Bar will be searched in the system libs first and loaded from <i>foo.par</i> if it wasn&#39;t found!</p>

<pre><code>    use PAR { file =&gt; &#39;foo.par&#39;, run =&gt; &#39;myscript&#39; };</code></pre>

<p>This will load <i>foo.par</i> as usual and then execute the <i>script/myscript</i> file from the archive. Note that your program will not regain control. When <i>script/myscript</i> exits, so does your main program. To make this more useful, you can defer this to runtime: (otherwise equivalent)</p>

<pre><code>    require PAR;
    PAR-&gt;import( { file =&gt; &#39;foo.par&#39;, run =&gt; &#39;myscript&#39; } );</code></pre>

<p>If you have <a href="https://metacpan.org/pod/PAR::Repository::Client">PAR::Repository::Client</a> installed, you can do this:</p>

<pre><code>    use PAR { repository =&gt; &#39;http://foo/bar/&#39; };
    use Module; # not locally installed!</code></pre>

<p>And PAR will fetch any modules you don&#39;t have from the specified PAR repository. For details on how this works, have a look at the SEE ALSO section below. Instead of an URL or local path, you can construct an <a href="https://metacpan.org/pod/PAR::Repository::Client">PAR::Repository::Client</a> object manually and pass that to PAR. If you specify the <code>install =&gt; 1</code> option in the <code>use PAR</code> line above, the distribution containing <code>Module</code> will be permanently installed on your system. (<code>use PAR { repository =&gt; &#39;http://foo/bar&#39;, install =&gt; 1 };</code>)</p>

<p>Furthermore, there is an <code>upgrade =&gt; 1</code> option that checks for upgrades in the repository in addition to installing. Please note that an upgraded version of a module is only loaded on the next run of your application.</p>

<p>Adding the <code>dependencies =&gt; 1</code> option will enable PAR::Repository::Client&#39;s static dependency resolution (PAR::Repository::Client 0.23 and up).</p>

<p>Finally, you can combine the <code>run</code> and <code>repository</code> options to run an application directly from a repository! (And you can add the <code>install</code> option, too.)</p>

<pre><code>  use PAR { repository =&gt; &#39;http://foo/bar/&#39;, run =&gt; &#39;my_app&#39; };
  # Will not reach this point as we executed my_app,</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>This module lets you use special zip files, called <b>P</b>erl <b>Ar</b>chives, as libraries from which Perl modules can be loaded.</p>

<p>It supports loading XS modules by overriding <b>DynaLoader</b> bootstrapping methods; it writes shared object file to a temporary file at the time it is needed.</p>

<p>A <i>.par</i> file is mostly a zip of the <i>blib/</i> directory after the build process of a CPAN distribution. To generate a <i>.par</i> file yourself, all you have to do is compress the modules under <i>arch/</i> and <i>lib/</i>, e.g.:</p>

<pre><code>    % perl Makefile.PL
    % make
    % cd blib
    % zip -r mymodule.par arch/ lib/</code></pre>

<p>Afterward, you can just use <i>mymodule.par</i> anywhere in your <code>@INC</code>, use <b>PAR</b>, and it will Just Work. Support for generating <i>.par</i> files is going to be in the next (beyond 0.2805) release of Module::Build.</p>

<p>For convenience, you can set the <code>PERL5OPT</code> environment variable to <code>-MPAR</code> to enable <code>PAR</code> processing globally (the overhead is small if not used); setting it to <code>-MPAR=/path/to/mylib.par</code> will load a specific PAR file. Alternatively, consider using the <i>par.pl</i> utility bundled with the <a href="https://metacpan.org/pod/PAR::Packer">PAR::Packer</a> distribution, or using the self-contained <i>parl</i> utility which is also distributed with <a href="https://metacpan.org/pod/PAR::Packer">PAR::Packer</a> on machines without PAR.pm installed.</p>

<p>Note that self-containing scripts and executables created with <i>par.pl</i> and <i>pp</i> may also be used as <i>.par</i> archives:</p>

<pre><code>    % pp -o packed.exe source.pl        # generate packed.exe (see PAR::Packer)
    % perl -MPAR=packed.exe other.pl    # this also works
    % perl -MPAR -Ipacked.exe other.pl  # ditto</code></pre>

<p>Please see <a href="PAR.html#SYNOPSIS">&quot;SYNOPSIS&quot;</a> for most typical use cases.</p>

<h1 id="NOTES">NOTES</h1>

<p>Settings in <i>META.yml</i> packed inside the PAR file may affect PAR&#39;s operation. For example, <i>pp</i> provides the <code>-C</code> (<code>--clean</code>) option to control the default behavior of temporary file creation.</p>

<p>Currently, <i>pp</i>-generated PAR files may attach four PAR-specific attributes in <i>META.yml</i>:</p>

<pre><code>    par:
      clean: 0          # default value of PAR_CLEAN
      signature: &#39;&#39;     # key ID of the SIGNATURE file
      verbatim: 0       # was packed prerequisite&#39;s PODs preserved?
      version: x.xx     # PAR.pm version that generated this PAR</code></pre>

<p>User-defined environment variables, like <i>PAR_GLOBAL_CLEAN</i>, always overrides the ones set in <i>META.yml</i>. The algorithm for generating caching/temporary directory is as follows:</p>

<ul>

<li><p>If <i>PAR_GLOBAL_TEMP</i> is specified, use it as the cache directory for extracted libraries, and do not clean it up after execution.</p>

</li>
<li><p>If <i>PAR_GLOBAL_TEMP</i> is not set, but <i>PAR_GLOBAL_CLEAN</i> is specified, set <i>PAR_GLOBAL_TEMP</i> to <code><i>TEMP</i>/par-<i>USERHEX</i>/temp-<i>PID</i>/</code>, cleaning it after execution.</p>

</li>
<li><p>If both are not set, use <code><i>TEMP</i>/par-<i>USERHEX</i>/cache-<i>HASH</i>/</code> as the <i>PAR_GLOBAL_TEMP</i>, reusing any existing files inside.</p>

</li>
</ul>

<p>Here is a description of the variables the previous paths.</p>

<ul>

<li><p><i>TEMP</i> is a temporary directory, which can be set via <code>$ENV{PAR_GLOBAL_TMPDIR}</code>, <code>$ENV{TMPDIR}</code>, <code>$ENV{TEMPDIR}</code>, <code>$ENV{TEMP}</code> or <code>$ENV{TMP}</code>, in that order of priority. If none of those are set, <i>C:\TEMP</i>, <i>/tmp</i> are checked. If neither of them exists, <i>.</i> is used.</p>

</li>
<li><p><i>USERHEX</i> is derived from the user name, or SYSTEM if none can be found. On Win32, this is <code>$Win32::LoginName</code>. On Unix, this is <code>$ENV{USERNAME}</code> or <code>$ENV{USER}</code>. Encode the raw bytes of the user name each as two hex digits to obtain <i>USERHEX</i>.</p>

</li>
<li><p><i>PID</i> is the process ID. Forked children use the parent&#39;s PID.</p>

</li>
<li><p><i>HASH</i> is a crypto-hash of the entire par file or executable, calculated at creation time. This value can be overloaded with <code>pp</code>&#39;s --tempdir parameter.</p>

</li>
</ul>

<p>By default, PAR strips POD sections from bundled modules. In case that causes trouble, you can turn this off by setting the environment variable <code>PAR_VERBATIM</code> to <code>1</code>.</p>

<h2 id="import-options"><a id="import"></a>import options</h2>

<p>When you &quot;use PAR {...}&quot; or call PAR-&gt;import({...}), the following options are available.</p>

<pre><code>  PAR-&gt;import({ file =&gt; &#39;foo.par&#39; });
  # or
  PAR-&gt;import({ repository =&gt; &#39;http://foo/bar/&#39; });</code></pre>

<dl>

<dt id="file">file</dt>
<dd>

<p>The par filename.</p>

<p>You must pass <i>one</i> option of either &#39;file&#39; or &#39;repository&#39;.</p>

</dd>
<dt id="repository">repository</dt>
<dd>

<p>A par repository (exclusive of file)</p>

</dd>
<dt id="fallback">fallback</dt>
<dd>

<p>Search the system <code>@INC</code> before the par.</p>

<p>Off by default for loading <i>.par</i> files via <code>file =</code> ...&gt;. On by default for PAR repositories.</p>

<p>To prefer loading modules from a repository over the locally installed modules, you can load the repository as follows:</p>

<pre><code>  use PAR { repository =&gt; &#39;http://foo/bar/&#39;, fallback =&gt; 0 };</code></pre>

</dd>
<dt id="run">run</dt>
<dd>

<p>The name of a script to run in the par. Exits when done.</p>

</dd>
<dt id="no_shlib_unpack">no_shlib_unpack</dt>
<dd>

<p>Skip unpacking bundled dynamic libraries from shlib/$archname. The client may have them installed, or you may wish to cache them yourself. In either case, they must end up in the standard install location (such as /usr/local/lib/) or in $ENV{PAR_TEMP} <i>before</i> you require the module which needs them. If they are not accessible before you require the dependent module, perl will die with a message such as &quot;cannot open shared object file...&quot;</p>

</dd>
</dl>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p><a href="https://metacpan.org/pod/distribution/PAR/lib/PAR/Tutorial.pod">PAR::Tutorial</a>, <a href="https://metacpan.org/pod/distribution/PAR/lib/PAR/FAQ.pod">PAR::FAQ</a></p>

<p>The <a href="https://metacpan.org/pod/PAR::Packer">PAR::Packer</a> distribution which contains the packaging utilities: <a href="https://metacpan.org/pod/par.pl">par.pl</a>, <a href="https://metacpan.org/pod/parl">parl</a>, <a href="https://metacpan.org/pod/pp">pp</a>.</p>

<p><a href="https://metacpan.org/pod/PAR::Dist">PAR::Dist</a> for details on PAR distributions.</p>

<p><a href="https://metacpan.org/pod/PAR::Repository::Client">PAR::Repository::Client</a> for details on accessing PAR repositories. <a href="https://metacpan.org/pod/PAR::Repository">PAR::Repository</a> for details on how to set up such a repository.</p>

<p><a href="./Archive::Zip.html">Archive::Zip</a>, <a href="functions/CORE.html#require">&quot;require&quot; in perlfunc</a></p>

<p><a href="https://metacpan.org/pod/ex::lib::zip">ex::lib::zip</a>, <a href="https://metacpan.org/pod/Acme::use::strict::with::pride">Acme::use::strict::with::pride</a></p>

<p>Steffen Mueller has detailed slides on using PAR for application deployment at <a href="http://steffen-mueller.net/talks/appdeployment/">http://steffen-mueller.net/talks/appdeployment/</a>.</p>

<p>PAR supports the <a href="https://metacpan.org/pod/prefork">prefork</a> module. It declares various run-time dependencies so you can use the <a href="https://metacpan.org/pod/prefork">prefork</a> module to get streamlined processes in a forking environment.</p>

<h1 id="ACKNOWLEDGMENTS">ACKNOWLEDGMENTS</h1>

<p>Nicholas Clark for pointing out the mad source filter hook within the (also mad) coderef <code>@INC</code> hook, as well as (even madder) tricks one can play with PerlIO to avoid source filtering.</p>

<p>Ton Hospel for convincing me to ditch the <code>Filter::Simple</code> implementation.</p>

<p>Uri Guttman for suggesting <code>read_file</code> and <code>par_handle</code> interfaces.</p>

<p>Antti Lankila for making me implement the self-contained executable options via <code>par.pl -O</code>.</p>

<p>See the <i>AUTHORS</i> file in the distribution for a list of people who have sent helpful patches, ideas or comments.</p>

<h1 id="AUTHORS">AUTHORS</h1>

<p>Audrey Tang &lt;cpan@audreyt.org&gt;</p>

<p>Steffen Mueller &lt;smueller@cpan.org&gt;</p>

<p>You can write to the mailing list at &lt;par@perl.org&gt;, or send an empty mail to &lt;par-subscribe@perl.org&gt; to participate in the discussion.</p>

<p>Please submit bug reports to &lt;bug-par@rt.cpan.org&gt;. If you need support, however, joining the &lt;par@perl.org&gt; mailing list is preferred.</p>

<h1 id="COPYRIGHT">COPYRIGHT</h1>

<p>Copyright 2002-2010 by Audrey Tang &lt;cpan@audreyt.org&gt;. Copyright 2005-2010 by Steffen Mueller &lt;smueller@cpan.org&gt;</p>

<p>This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

<p>See <i>LICENSE</i>.</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install PAR, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm PAR</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install PAR</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="PAR.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
